// 导入默认成员
// 加载模块中通过 export default 导出的成员
import Vuex from 'vuex'
import Vue from 'vue'

// 注册插件，Vue 就会调用 Vuex 的 install 方法，同时把 Vue 作为参数传递给 install 方法
Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    count: 0
  },
  getters: {
    // 1. 依赖成员变化，计算属性重新计算
    // 2. 计算属性有缓存功能（数据没变，不会重新调用）
    hello (state) {
      return state.count + 5
    }
  },
  mutations: {},
  actions: {}
})

new Vue({
  // 将 store 注册到根实例
  store
})


// 按需加载成员
// import { xxx } 不是解构
// 加载模块中通过 export 导出的成员
import { Store } from 'vuex'
new Store({})

// 对象解构
// const obj = {
//   a: 1,
//   b: 2
// }

// const { a, b } = obj

// console.log(a, b) // 1 2

